package com.dingding.facade.user.facade.common.driver;

import com.dingding.common.core.exception.bussiness.BussinessException;
import com.dingding.facade.user.common.dto.common.ReqGetDriverAuthStatus;
import com.dingding.facade.user.common.dto.common.ReqRegisterDriverDTO;
import com.dingding.facade.user.common.dto.common.ResGetDriverAuthStatus;
import com.dingding.facade.user.dto.common.driver.ReqDriverAuthDTO;
import com.dingding.facade.user.dto.common.driver.ReqDriverUserDTO;
import com.dingding.facade.user.dto.common.driver.ReqSyncDriverAuthStateDTO;
import com.dingding.facade.user.dto.common.driver.ResDriverAuthDTO;
import com.dingding.facade.user.dto.common.driver.ResDriverAuthDetailsDTO;
import com.dingding.facade.user.dto.common.driver.ResSyncDriverAuthStateDTO;

/**
 * 
 * @ClassName: IDriverFacade 
 * @Description: 司机共同接口
 * @author hufan
 * @date 2016年12月1日 下午7:47:34 
 *
 */
public interface IDriverFacade {
	
	/**
	 * 
	 * @Title: driverAuth 
	 * @Description: 司机认证的共同接口
	 * @param  参数说明 
	 * @author hufan
	 * @return 返回类型 
	 * @throws
	 */
	public ResDriverAuthDTO driverAuth(ReqDriverAuthDTO reqDriverAuthDTO) throws BussinessException;
	
	/**
	 * 
	 * @Title: getResDriverAuthDetails 
	 * @Description: 司机认证的信息详情
	 * @param  参数说明 
	 * @author hufan
	 * @return 返回类型 
	 * @throws
	 */
	public ResDriverAuthDetailsDTO getResDriverAuthDetails(ReqDriverUserDTO reqDriverUserDTO) throws BussinessException;
	
	/**
	 * 
	 * @Title: registerDriver 
	 * @Description: 注册司机(该版本支持出租车司机和专车司机的注册) 
	 * @param registerDriverDTO 注册司机所需参数
	 * @author YHQ 
	 * @since V2.5.7
	 * @return String 用户Id
	 * 
	 */
	public String registerDriver(ReqRegisterDriverDTO registerDriverDTO);
	
	/**
	 * 
	 * @Title: getDriverAuthStatus 
	 * @Description: 获取司机认证状态
	 * @param reqGetDriverAuthStatus 客户端请求参数
	 * @author YHQ 
	 * @since V2.5.7
	 * @return ResGetDriverAuthStatus    返回类型
	 * 
	 */
	public ResGetDriverAuthStatus getDriverAuthStatus(ReqGetDriverAuthStatus reqGetDriverAuthStatus);
	
	/**
	 * 
	 * @Title: getResSyncDriverAuthState 
	 * @Description: 获取车主认证状态
	 * @param  参数说明 
	 * @author hufan
	 * @return 返回类型 
	 * @throws
	 */
	public ResSyncDriverAuthStateDTO getResSyncDriverAuthState(ReqSyncDriverAuthStateDTO reqSyncDriverAuthStateDTO) throws BussinessException;

}
